package com.hs.srm.admin.modules.harmfulsubstance.entity;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import com.hs.srm.base.common.base.CloneableEntity;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.util.Date;

/**
 * 宣告表实体类
 *
 * @author ych
 * @since 2020-03-24 13:29:50
 */
@Setter
@Getter
@TableName("declaration_form_head")
public class DeclarationFormHeadEntity implements Serializable, CloneableEntity<DeclarationFormHeadEntity> {

    private static final long serialVersionUID = 336437184789679625L;

    /**
     * 厚声待审核
     */
    public static final Integer DSH=0;

    /**
     * 厚声审核通过
     */
    public static final Integer TG=1;

    /**
     * 厚声审核退回
     */
    public static final Integer TH=2;

    /**
     * 厚声已淘汰
     */
    public static final Integer YTD=3;

    /**
     * 未生效
     */
    public static final Integer WSX=0;

    /**
     * 生效
     */
    public static final Integer SX=1;

    /**
     * 无效
     */
    public static final Integer WX=2;


    /**
     * 宣告表主键
     */
    @TableId(value = "pk_id", type = IdType.UUID)
    @TableField("pk_id")
    private String pkId;

    /**
     * 宣告表编号
     */
    @TableField("form_code")
    private String formCode;

    /**
     * 模块名称（物料描述）
     */
    @TableField("material_desc")
    private String materialDesc;

    /**
     * 专用号(物料号)
     */
    @TableField("material_code")
    private String materialCode;

    /**
     * 关联专用号(相关联的物料号，多个以逗号分隔)
     */
    @TableField("relate_material_code")
    private String relateMaterialCode;

    /**
     * 宣告日期
     */
    @TableField("declaration_date")
    @JSONField(format = "yyyy-MM-dd")
    private Date declarationDate;

    /**
     * 有效日期至
     */
    @TableField("expire_date")
    @JSONField(format = "yyyy-MM-dd")
    private Object expireDate;

    /**
     * 申请审核工厂
     */
    @TableField("verify_factory")
    private String verifyFactory;

    /**
     * 校核人
     */
    @TableField("reviewer")
    private String reviewer;

    /**
     * 审核时间
     */
    @TableField("review_date")
    @JSONField(format = "yyyy-MM-dd")
    private Date reviewDate;

    /**
     * 节点状态:0，厚声待审核；1，厚声审核通过；2，厚声审核退回；3，厚声已淘汰
     */
    @TableField("node_status")
    private Integer nodeStatus;

    /**
     * 生效状态:0，未生效；1，生效；2，无效
     */
    @TableField("valid_status")
    private Integer validStatus;

    /**
     * 预警状态：0：正常；1，预警中；2，已超期；-1，审核不通过，不预警（审批通过的才进行预警）
     */
    @TableField("warning_status")
    private Integer warningStatus;

    /**
     * 关联供货工厂
     */
    @TableField("relate_supplier")
    private String relateSupplier;

    /**
     * 供应商编码
     */
    @TableField("vendor_code")
    private String vendorCode;

    /**
     * 供应商名称
     */
    @TableField("vendor_name")
    private String vendorName;

    /**
     * QC080000体系：0，通过；1，未通过
     */
    @TableField("qc080000")
    private Integer qc080000;

    /**
     * RoHS承诺书编号
     */
    @TableField("guarantee_code")
    private String guaranteeCode;

    /**
     * 模块商联系人
     */
    @TableField("contacter")
    private String contacter;

    /**
     * 联系电话
     */
    @TableField("telephone")
    private String telephone;

    /**
     * 地址
     */
    @TableField("address")
    private String address;

    /**
     * 创建时间
     */
    @TableField("create_date")
    @JSONField(format = "yyyy-MM-dd")
    private Date createDate;

    /**
     * 创建人
     */
    @TableField("creator")
    private String creator;

    @Override
    public DeclarationFormHeadEntity clone() {
        try {
            return (DeclarationFormHeadEntity) super.clone();
        } catch (CloneNotSupportedException ex) {
            ex.printStackTrace();
        }
        return null;
    }
}